package xiaomi

// 小米api域名
const domain_url = "http://api.developer.xiaomi.com/devupload"

// 应用包查询接口
const api_query = "/dev/query"

// 应用apk推送
const api_push = "/dev/push"

// 推送信息
type AppPushInfo struct {
	UserName     string `json:"userName"`     // *用户名，在小米开发者站登录的邮箱
	SynchroType  string `json:"synchroType"`  // *更新类型：0=新增，1=更新包，2=内容更新
	AppInfo      string `json:"appInfo"`      // *JSON 字符串
	Apk          string `json:"apk"`          // Apk 包，更新类型为新增和更新时必传
	SecondApk    string `json:"secondApk"`    // secondApk包，双包发布时必传,上传方式和Apk包一致
	Icon         string `json:"icon"`         // *应用图标
	Screenshot_1 string `json:"screenshot_1"` // 应用的第1 幅截图，synchroType=0 时必选
	Screenshot_2 string `json:"screenshot_2"` // 应用的第2 幅截图，synchroType=0 时必选
	Screenshot_3 string `json:"screenshot_3"` // 应用的第3 幅截图，synchroType=0 时必选
	Screenshot_4 string `json:"screenshot_4"` // 应用的第4 幅截图，可选，截图显示顺序为1-5
	Screenshot_5 string `json:"screenshot_5"` // 应用的第5 幅截图，可选
}

// 推送的应用包实体
type AppPushAppInfo struct {
	AppName       string  `json:"appName"`       // *应用名称
	PackageName   string  `json:"packageName"`   // *包名
	PublisherName string  `json:"publisherName"` // 开发者名称，不传默认使用开发者站注册的名称
	VersionName   string  `json:"versionName"`   // 版本名，默认使用apk 中的VersionName
	Category      int     `json:"category"`      // *应用分类(为从appstore 拉取的类型id) 新增synchroType=0 时必选
	KeyWords      string  `json:"keyWords"`      // *应用搜索关键字，空格分隔，新增时必选
	Desc          string  `json:"desc"`          // *应用介绍，新增时必选
	UpdateDesc    string  `json:"updateDesc"`    // 更新说明，当为更新应用时必选
	ShortDesc     string  `json:"shortDesc"`     // 简单介绍
	Web           string  `json:"web"`           // 应用的官网
	Price         float64 `json:"price"`         // 价格
	PrivacyUrl    string  `json:"privacyUrl"`    // 隐私政策
}

// 应用信息查询结果
type XiaoMiAppInfo struct {
	Result        int
	Create        bool        // 是否允许新增该包名的应用
	UpdateVersion bool        // 是否允许应用版本更新
	UpdateInfo    bool        // 是否允许应用信息更新
	Message       string      // 响应消息 若为正常响应则可为空，若非正常响应则返回错误信息
	PackageInfo   PackageInfo // 应用包详细信息，如果为空表示不存在相应包
}

// 应用包详细信息
type PackageInfo struct {
	AppName     string
	PackageName string
	VersionCode int
	VersionName string
}

// 应用推送结果
type AppPushResult struct {
	Message string
	Result  int
}
